<?php

class Application_Form_Pegawai extends Zend_Form
{
    
    public function getDepartemen()
    {
        $departemen = new Application_Model_Departemen();
        $departemen = $departemen->fetchAll();
        $dep = array();
        $dep[] = "";
        foreach ($departemen as $dept)
        {
            $dep[$dept->id_departemen] = $dept->nama_departemen;
        }
        
        /* @var $dep ArrayObject */
        return $dep;
    }
    
    public function getPosisi()
    {
        $posisi = new Application_Model_Posisi();
        $posisi = $posisi->fetchAll();
        $pos = array();
        $pos[] = "";
        foreach ($posisi as $posisi)
        {
            $pos[$posisi->id_posisi] = $posisi->nama_posisi;
        }
        
        /* @var $pos ArrayObject */
        return $pos;
    }
    
    public function getStatus()
    {
        $status = new Application_Model_Statuspegawai();
        $status = $status->fetchAll();
        $stat = array();
        $stat[] = "";
        foreach ($status as $status)
        {
            $stat[$status->id_status_pegawai] = $status->status_pegawai;
        }
        
        /* @var $stat ArrayObject */
        return $stat;
    }
    
    public function init()
    {
        $this->setName('form_pegawai');
        $this->setMethod('post');
        
        $id_pegawai = new Zend_Form_Element_Hidden('id_pegawai');
        
        $nik = new Zend_Form_Element_Text('nik');
        $nik->setLabel('NIK')->setRequired();
        
        $nama_pegawai = new Zend_Form_Element_Text('nama_pegawai');
        $nama_pegawai->setLabel('Employee Name')->setRequired()->addValidator('Alpha', true, array('allowWhiteSpace' => true));
        $nama_pegawai->getValidator('Alpha')->setMessage('Hanya Masukkan Huruf');
        
        $tanggal_lahir = new ZendX_JQuery_Form_Element_DatePicker('tanggal_lahir');
        $tanggal_lahir->setLabel('Birth Date')->setRequired()->addValidator('Date')->setJQueryParams(array('dateFormat' => 'yy-mm-dd', 'showAnim' => 'fadeIn', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '1945:2020'));
        
        $tanggal_lahir->getValidator('Date')->setMessage('Format Tanggal Anda Tidak Benar. Contoh (2012-12-31)', Zend_Validate_Date::FALSEFORMAT);
        
        $jenis_kelamin = new Zend_Form_Element_Select('jenis_kelamin');
        $jenis_kelamin->setLabel('Gender')->setRequired()->setMultiOptions(array('null'=> 'Pilih Jenis Kelamin','Laki-laki' => 'Laki-laki', 'Wanita' => 'Wanita'));
        
        $alamat_pegawai = new Zend_Form_Element_Textarea('alamat_pegawai');
        $alamat_pegawai->setLabel('Address')->setAttribs(array( 'cols'=> '40', 'rows' => '5'))->setRequired();
        
        $no_telepon_pegawai = new Zend_Form_Element_Text('no_telepon_pegawai');
        $no_telepon_pegawai->setLabel('Telephone Number')->setRequired()->addValidator('Digits');
        
        $email_pegawai = new Zend_Form_Element_Text('email_pegawai');
        $email_pegawai->setLabel('E-Mail')->addValidator('EmailAddress');
        
        $tanggal_masuk_ojt = new ZendX_JQuery_Form_Element_DatePicker('tanggal_masuk_ojt');
        $tanggal_masuk_ojt->setLabel('Tanggal Masuk OJT')->addValidator('Date')->setJQueryParams(array('dateFormat' => 'yy-mm-dd', 'showAnim' => 'fadeIn', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '2010:2020'));
        
        $tanggal_keluar_ojt = new ZendX_JQuery_Form_Element_DatePicker('tanggal_keluar_ojt');
        $tanggal_keluar_ojt->setLabel('Tanggal Keluar OJT')->addValidator('Date')->setJQueryParams(array('dateFormat' => 'yy-mm-dd', 'showAnim' => 'fadeIn', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '2010:2020'));
        
        $tanggal_masuk = new ZendX_JQuery_Form_Element_DatePicker('tanggal_masuk_kerja');
        $tanggal_masuk->setLabel('Tanggal Masuk Kerja')->addValidator('Date')->setJQueryParams(array('dateFormat' => 'yy-mm-dd', 'showAnim' => 'fadeIn', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '2010:2020'));
        
        $tanggal_keluar = new ZendX_JQuery_Form_Element_DatePicker('tanggal_keluar_kerja');
        $tanggal_keluar->setLabel('Tanggal Keluar Kerja')->addValidator('Date')->setJQueryParams(array('dateFormat' => 'yy-mm-dd', 'showAnim' => 'fadeIn', 'changeMonth' => true, 'changeYear' => true, 'yearRange' => '2010:2020'));
        
        $departemen = new Zend_Form_Element_Select('id_departemen');
        $departemen->setLabel('Department')->setRequired()->setMultiOptions($this->getDepartemen());
        
        $posisi = new Zend_Form_Element_Select('id_posisi');
        $posisi->setLabel('Position')->setRequired()->setMultiOptions($this->getPosisi());
        
        $status = new Zend_Form_Element_Select('id_status_pegawai');
        $status->setLabel('Employee Status')->setRequired()->setMultiOptions($this->getStatus());
        
        $submit = new Zend_Form_Element_Submit('tambah');
        $submit->setLabel('Add Employee');
        
        $ulang = new Zend_Form_Element_Button('batal');
        $ulang->setLabel('Cancel');
        
        $this->addElements(array($nik, $nama_pegawai, $tanggal_lahir, $jenis_kelamin, $alamat_pegawai, $no_telepon_pegawai, $email_pegawai, $tanggal_masuk_ojt, 
            $tanggal_keluar_ojt, $tanggal_masuk, $tanggal_keluar, $departemen, $posisi, $status, $submit, $ulang, $id_pegawai ));

        }
}